iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
DevOps

PM 的 30 日 DevOps 養成計畫 系列 第 26

Feature Flag:降低風險的產品交付新思維

  • 分享至 

  • xImage
  •  

前面幾天講到發布的其中一個策略是金絲雀發布,利用像帶進去礦坑的金絲雀一樣,小量的進行測試,如果功能 ok 再循序發布。

Feature Flag 功能

可以實現金絲雀發布的其中一個方法就是 Feature Flag,基本上就是在程式中設立像開關的功能,當產品上線時,可以遠端開啟/關閉某項特定功能,而不需要重新部署。

這樣的設計,除了可以針對某些族群進行功能測試(只對一部分條件相符的使用者開啟),也可以在功能有問題時,不用整個 rollback,只需要將功能的開關關閉,就可以暫時解決問題。

在談完好處之後,Feature Flag 也有使用上需要注意的議題,那就是它只是暫時的處理方式,像這樣的程式寫法,不適合長久流在程式碼中,會增加程式設計的複雜度,進一步變成技術債,效能也會受到影響。

像這樣的設計,如果在版本上沒有與團隊同步清楚,也很容易造成 QA 在測試舊的版本,但使用者已經看到新功能,會更需要在管理上更加注意細節。

所以在功能測試完成後,這樣的設計就應該在一定的期限進行調整。

Feature Flag 實際運用

有實際在使用 Feature Flag 的團隊像是 Netflix,Netflix 會對部分用戶開啟某些要測試的介面,收集完需要的數據後在訂定發布策略,Facebook 也會對於少數用戶進行「灰度發布」,等到功能確認穩定之後才會大規模正式發布。


上一篇
平台工程 Before/After:DevOps 的真正加速器
下一篇
Multi-Cloud 與 Hybrid Cloud 的 DevOps 實戰
系列文
PM 的 30 日 DevOps 養成計畫 27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
Judy Huang
iT邦新手 3 級 ‧ 2025-09-06 16:49:34

Feature Flag除了會增加程式設計的複雜度之外,如果設計的不好,不同Feature Flag之間還會有dependency,結果就會發生怎麼開了一個Feature Flag沒有用QQ,原來還要開另外一個才會作用XD

我要留言

立即登入留言